package com.cyan.note.dto.manager.order;

import lombok.Data;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单收款DTO
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
@Data
public class OrderPaymentDTO {

    /**
     * 实际收款金额
     */
    @NotNull(message = "收款金额不能为空")
    @DecimalMin(value = "0.01", message = "收款金额必须大于0")
    private BigDecimal receivedAmount;

    /**
     * 收款方式
     */
    @NotBlank(message = "收款方式不能为空")
    private String paymentMethod;

    /**
     * 收款时间
     */
    private LocalDateTime paymentTime;

    /**
     * 收款备注
     */
    private String paymentRemark;

    /**
     * 是否全额收款
     */
    private Boolean isFullPayment = true;

    /**
     * 欠款金额（如果不是全额收款）
     */
    private BigDecimal debtAmount;

    /**
     * 付款人信息
     */
    private String payerInfo;
}